<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function Cat(name){
            this.name = name
        }

        
        // 获取原型对象的方式
        // console.log(cat1.__proto__);
        // console.log(Cat.prototype);
        // console.log(Object.getPrototypeOf(cat1));//标准方法

        // 获取构造函数
        // console.log(cat1.constructor);

        // 三种获取原型对象的方式得到的值都是这个对象的原型对象
        // var a = Object.getPrototypeOf(cat1);
        // var b = Cat.prototype;
        // var c = cat1.__proto__;

        console.log(a===b);//true
        console.log(c===b);//true
        console.log(c===a);//true


        var ob = {age:35}
        // Cat.prototype = ob//不要用，以后的所有对象的原型都改了
        var cat1 = new Cat("猫")
        var cat2 = new Cat("猫222")
        // 修改cat1的原型对象为ob
        // Object.setPrototypeOf(cat1,ob)
        // 只能对对象，不能对构造函数做操作

        var a = Object.getPrototypeOf(cat1);//ob
        var b = Cat.prototype;//不能修改的原因这个我可以得到无数个对象，
        // 我不可能我其他的对象都没有改就变了吧，所以只能通过对象本身修改
        var c = cat1.__proto__;//ob

        console.log(a===b);//false
        console.log(c===b);//false
        console.log(c===a);//true

        console.log(a.constructor);
    </script>
</body>
</html>